package com.battery.system.service.battery;

import java.util.List;

import com.battery.system.domain.BO.EventBO;
import com.battery.system.domain.Event;
import com.battery.system.domain.VO.EventVO;
import com.battery.system.service.IBaseService;

/**
 * 活动Service接口
 *
 * @author battery
 * @date 2021-01-26
 */
public interface IEventService extends IBaseService<Event> {
    /**
     * 查询活动
     *
     * @param id 活动ID
     * @return 活动
     */
    public Event selectEventById(String id);

    /**
     * 查询活动列表
     *
     * @param event 活动
     * @return 活动集合
     */
    public List<Event> selectEventList(Event event);

    /**
     * 新增活动
     *
     * @param event 活动
     * @return 结果
     */
    public int insertEvent(Event event);

    /**
     * 修改活动
     *
     * @param event 活动
     * @return 结果
     */
    public int updateEvent(Event event);

    /**
     * 批量删除活动
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteEventByIds(String ids);

    /**
     * 删除活动信息
     *
     * @param id 活动ID
     * @return 结果
     */
    public int deleteEventById(String id);

    /**
     * 活动列表
     *
     * @param eventBO
     * @return
     */
    List<EventVO> selectEventVOList(EventBO eventBO);

    /**
     * 根据活动名称查询活动信息
     *
     * @param eventName
     * @return
     */
    Event selectByEventName(String eventName);

    /**
     * 逻辑删除
     *
     * @param id
     * @return
     */
    int deleteLogicEventById(String id);

    /**
     * 活动开启或者关闭
     *
     * @param id
     * @param open
     * @return
     */
    int openOrClose(String id, Integer open);

    /**
     * 查询可选择的活动
     *
     * @return
     */
    List<EventVO> averageEventList();
}
